const commentService = require("../service/comment.service")

class CommentController {
  async create(ctx, next) {
    // 1.获取请求参数
    const { content, moment_id } = ctx.request.body

    // 2.获取token中登录的用户信息
    // 动态由于谁发布 token-> id、name
    const { id: user_id } = ctx.user

    // 3.将参数传递给数据库操作中间件,进行数据库操作
    let res = await commentService.create(content, moment_id, user_id)
    ctx.body = {
      msg: '评论成功',
      data: res
    }
  }

  async reply(ctx, next) {
    // 1.获取请求参数
    const { content, moment_id, comment_id } = ctx.request.body

    // 2.获取token中登录的用户信息
    // 动态由于谁发布 token-> id、name
    const { id: user_id } = ctx.user

    // 3.将参数传递给数据库操作中间件,进行数据库操作
    let res = await commentService.reply(content, moment_id,comment_id, user_id)
    ctx.body = {
      msg: '回复评论成功',
      data: res
    }
  }

  async remove(ctx, next) {
    // 1.获取请求参数
    const { commentId } = ctx.params

    // 3.将参数传递给数据库操作中间件,进行数据库操作
    let res = await commentService.remove(commentId)
    ctx.body = {
      msg: '删除评论成功',
      data: res
    }
  }
}

module.exports = new CommentController()